package edu.njust.httpmanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import edu.njust.httpmanager.entity.Program;
import edu.njust.httpmanager.entity.dto.ProgramDto;

import java.util.List;

public interface IProgramService extends IService<Program> {

    /**
     * 保存项目以及用户权限
     *
     * @param program
     */
    void saveWithAuth(Program program, Long userId);

    /**
     * 获取用户的ID，以及用户在项目中的权限
     *
     * @param userId
     * @return
     */
    List<ProgramDto> getUserProgramWithAuth(Long userId);

    /**
     * 根据项目id，删除项目（需要同时删除项目下的所有角色、目录、接口信息）
     *
     * @param id 项目ID
     */
    void deleteProgram(Long id);

    /**
     * 根据项目id返回数据
     *
     * @param userId
     * @return
     */
    ProgramDto getUserProgramWithAuthById(Long userId, Long programId);

    List<ProgramDto> getUserProgramWithName(Long userId, String programName);
}
